home *** CD-ROM | disk | FTP | other *** search
Text File | 1998-11-02 | 58.2 KB | 1,001 lines |
- CC(1) Last changed: 3-9-98
-
-
- NNAAMMEE
- cccc, cc8899 - Invokes the MIPS and MIPSpro C compiler
-
- SSYYNNOOPPSSIISS
- cccc [--oo3322 | --nn3322 | --6644] [--aannssiiEE] [--aannssiiWW] [--aannssii] [--aavvooiidd__ggpp__oovveerrffllooww]
- [--cc] [--cccckkrr] [--CCLLIISSTT::......] [--ccoommmmoonn] [--DD _n_a_m_e=_d_e_f] [--DD _n_a_m_e]
- [--DDEEBBUUGG::......] [--ddiiaagg__eerrrroorr _n_u_m_b_e_r_l_i_s_t]] [[--ddiiaagg__rreemmaarrkk _n_u_m_b_e_r_l_i_s_t]]
- [[--ddiiaagg__ssuupppprreessss _n_u_m_b_e_r_l_i_s_t]] [[--ddiiaagg__wwaarrnniinngg _n_u_m_b_e_r_l_i_s_t]] [[--ddoollllaarr]] [[--EE]]
- [[--ffbb<<_f_i_l_e>]] [[--ffbbggeenn]] [[--ffbbuussee<<_f_i_l_e>>]] [[--ffllooaatt]] [[--ffllooaatt__ccoonnsstt]]
- [[--ffuullllwwaarrnn]] [[--GG _n_u_m]] [[--gg_n]] [[--hheellpp]] [[--II]] [[--II _d_i_r]] [[--iiggnnoorree__ssuuffffiixx]]
- [[--IINNLLIINNEE::......]] [[--IIPPAA::......]] [[--KKPPIICC]] [[--LL _d_i_r_e_c_t_o_r_y]] [[--ll _l_i_b_r_a_r_y]]
- [[--LLAANNGG::......]] [[--LLIISSTT::......]] [[--LLNNOO::......]] [[--MM]] [[--MMDDuuppddaattee _f_i_l_e_n_a_m_e]] [[--mmiippss_n
- [[--mmpp]] [[--nnooccpppp]] [[--nnoonn__sshhaarreedd]] [[--nnoossttddiinncc]] [[--oo _o_u_t_p_u_t]] [[--OO_n]] [[--OOPPTT::......]]
- [[--PP]] [[--ppccaa]] [[--ppeeddaannttiicc]] [[--rr]] [[--rr1100000000]] [[--rr55000000]] [[--rr88000000]] [[--SS]] [[--sshhooww]]
- [[--ssiiggnneedd]] [[--TTAARRGG::......]] [[--TTEENNVV::......]] [[--ttrraappuuvv]] [[--UU _n_a_m_e]]
- [[--uussee__rreeaaddoonnllyy__ccoonnsstt]] [[--uussee__rreeaaddwwrriittee__ccoonnsstt]] [[--vv]] [[--vveerrssiioonn]] [[--WW
- _c,_a_r_g_1[[,,_a_r_g_2......]]]] [[--ww]] [[--ww22]] [[--wwooffff aallll]] [[--wwooffff _n_u_m_b_e_r_l_i_s_t]] [[--xxaannssii]]
- [[--XXccpplluussccoommmm]] [[--xxggoott]] [[--YY _c,_p_a_t_h]]
-
- IIMMPPLLEEMMEENNTTAATTIIOONN
- IRIX systems
-
- DDEESSCCRRIIPPTTIIOONN
- This man page describes the cccc(1) and cc8899(1) commands. These commands
- invoke the MIPS and MIPSpro C compiler and the source preprocessor on
- source files that contain C code. cc8899 is used to invoke the C
- compiler when the environment variable __XXPPGG is defined. The command
- then operates in conformance with the X/Open XPG4 standard. Option or
- command line differences that may occur due to conformance to this
- standard are noted in the option descriptions.
-
- By default, the C compiler creates an executable file named aa..oouutt.
- Other files used and created by the C compiler are discussed under the
- FILES section of this man page. See the lldd(1) man page for load-time
- options.
-
- If conflicting options are specified, the option specified last on the
- command line overrides the previously specified option. Exceptions to
- this rule are noted in the individual option descriptions.
-
- Most ##pprraaggmmaa directives override corresponding command-line options.
- Exceptions to this rule are noted in option or ##pprraaggmmaa directive
- descriptions.
-
- Some command options, for example, --LLIISSTT, --LLNNOO, --OOPPTT, --TTAARRGG, and --TTEENNVV
- accept several arguments and allow you to specify a setting for each
- argument. To specify multiple arguments, either use colons to
- separate each argument or specify multiple options on the command
- line. For example, the following command lines are equivalent:
-
- cc -LIST:notes=ON:options=OFF b.f
- cc -LIST:notes=ON -LIST:options=OFF b.f
-
- The SGI compilers support three different Application Binary
- Interfaces, which are controlled by the following options (see the
- aabbii(5) man page for more information on these interfaces):
-
- OOppttiioonn AAccttiioonn
-
- --oo3322 or --3322 Generates a 32-bit object. (See the o32(5) man
- page for option descriptions and details.) This
- defaults to --mmiippss22 if --mmiippss11 has not been
- specified. See the ppee__eennvviirroonn(5) man page for
- information on the CCOOMMPPIILLEERR__DDEEFFAAUULLTTSS__PPAATTHH
- environment variable.
-
- --nn3322 Generates a 32-bit object. This defaults to
- --mmiippss33 if --mmiippss44 has not been specified.
-
- --6644 Generates a 64-bit object. This defaults to
- --mmiippss44 if --mmiippss33 has not been specified. See the
- ppee__eennvviirroonn(5) man page for information on the
- CCOOMMPPIILLEERR__DDEEFFAAUULLTTSS__PPAATTHH environment variable.
-
- The following alphabetized list of options are specific to the cccc and
- cc8899 commands and are valid in the n32 and 64 ABIs. See the oo3322(5) man
- page for options that are specific to the o32 ABI.
-
- ---- In XPG4 mode, standard utilities that do not accept options,
- but that do accept operands, will recognize ---- as the first
- argument to be discarded. This is required because portable
- applications need a way to shield their operands from any
- arbitrary options that the implementation may provide as an
- extension.
-
- For example, if the standard utility ffoooo is listed as taking
- no options, and the application needed to give it a pathname
- with a leading hypen, it could safely do it as: ffoooo ---- --mmyyffiillee
- and avoid any problems with --mm used as an extension.
-
- --aannssii Enables pure ANSI/ISO C mode. To see a list of defined
- symbols, enter the cccc --sshhooww ffoooo..cc command and see which
- symbols have been added as --DDssyymmbbooll__nnaammee. Default is xxaannssii.
-
- NOTE: When compiling in pure ANSI/ISO mode, several standard
- UNIX symbols (for example, eennvviirroonn, eenndd) may only be
- referenced by their ANSI/ISO-compliant counterparts (for
- example, __eennvviirroonn, __eenndd). The type lloonngg lloonngg is allowed, but
- results in a warning. To take advantage of this type in
- libraries that refer to ____iinntt6644__tt and ____uuiinntt6644__tt you must
- define the macro ____LLOONNGGLLOONNGG on the command line; otherwise,
- ____iinntt6644__tt and ____uuiinntt6644__tt are defined as structs. See the _A_N_S_I
- _C _T_r_a_n_s_i_t_i_o_n _G_u_i_d_e for more information.
-
- If --aannssii is specified with cccckkrr or xxaannssii, the last option
- specified is effective and the rest are ignored.
-
- --aannssiiEE Issues error messages when non-standard features are used.
- Available in ANSI/ISO C conformance (see --aannssii).
-
- --aannssiiWW Issues warning messages when non-standard features are used.
- This is the default in pure ANSI/ISO C mode. Available in
- ANSI/ISO C conformance (see --aannssii).
-
- --aavvooiidd__ggpp__oovveerrffllooww
- Sets assorted options that are intended to avoid GOT overflow.
-
- --cc Creates a relocatable object file for each named source file,
- but does not link the object files. The relocatable object
- file name corresponds to the name of the source file; a ..oo
- suffix is substituted for the suffix of the source file.
-
- --cccckkrr The traditional K&R/Version7 C with SGI extensions, including
- function prototypes, and the types vvooiidd and vvooiidd**. To see a
- list of defined symbols, enter the cccc --sshhooww ffoooo..cc command and
- see which symbols have been added as --DDssyymmbbooll__nnaammee. Default
- is xxaannssii. If specified with --aannssii or --xxaannssii, the last option
- specified is effective and the rest are ignored.
-
- --CCLLIISSTT:: ......
- Controls emission of the compiler's internal program
- representation back into C code, after IPA inlining and loop-
- nest transformations. This is a diagnostic tool, and the
- generated C code may not always be compilable. This compiler
- option may be discontinued in future compiler releases. The
- generated C code is written to two files, a header file
- containing file-scope declarations, and a file containing
- function definitions. The individual controls in this group
- are as follows:
-
- == (( OONN||OOFFFF ))
- Enables the C listing. This option is implied by any of
- the others, but may be used to enable the listing when no
- other options are required. For example, specifying
- --CCLLIISSTT::==OONN is the equivalent of specifying --cclliisstt.
-
- ddoottcc__ffiillee== _f_i_l_e_n_a_m_e
- Writes the program units into the specified file,
- _f_i_l_e_n_a_m_e. The default source file name has the extension
- ..ww22cc..cc.
-
- ddootthh__ffiillee== _f_i_l_e_n_a_m_e
- Specifies the file into which file-scope declarations are
- deposited. Defaults to the source file name with the
- extension ..ww22cc..hh.
-
- eemmiitt__ppffeettcchh [[ == (( OONN||OOFFFF ))]]
- Displays prefetch information as comments in the
- transformed source. If OONN or OOFFFF is not specified, the
- default is OOFFFF.
-
- lliinneelleennggtthh== _n
- Sets the maximum line length to _n characters. The
- default is unlimited.
-
- sshhooww [[ == (( OONN||OOFFFF ))]]
- Prints the input and output file names to stderr. If OONN
- or OOFFFF is not specified, the default is OONN.
-
- --ccoommmmoonn Relaxes the ANSI/ISO C Strict-Ref/Def-initialization model to
- the traditional IRIX Relaxed Ref/Def model. With --ccoommmmoonn, the
- declaration iinntt ii;; in multiple files at file level is merged.
- Without it, ANSI/ISO C generates a warning (from lldd(1)) about
- duplicate definitions. When C and Fortran compiled objects
- are linked together and an ANSI C defined variable should be
- located at the same address as a Fortran common block, you
- must compile the C source with the --ccoommmmoonn flag. When
- compiling in traditional K&R/Version7 C mode (see --cccckkrr), the
- --ccoommmmoonn option is ignored.
-
- --DD _n_a_m_e=_d_e_f
- --DD _n_a_m_e Define _n_a_m_e to the C macro preprocessor, as if by ##ddeeffiinnee. If
- no definition is given, _n_a_m_e is defined as 11.
-
- --DDEEBBUUGG:: ......
- Controls compiler features related to debugging, such as
- checking for possible errors (at compile time or execution
- time), or controlling the treatment of warning messages. See
- the DDEEBBUUGG__ggrroouupp((55)) man page for more information, including
- the individual options in this group. See also the --gg option
- for controlling emission of information for the debugger.
-
- --ddiiaagg__eerrrroorr _n_u_m_b_e_r_l_i_s_t
- Treats messages with the specified numbers as errors and does
- not generate an object file. _n_u_m_b_e_r_l_i_s_t is a comma-separated
- list of message numbers.
-
- --ddiiaagg__rreemmaarrkk _n_u_m_b_e_r_l_i_s_t
- Treats messages with the specified numbers as remarks unless
- they are non-discretionary errors. _n_u_m_b_e_r_l_i_s_t is a comma-
- separated list of message numbers. The messages specified by
- this option are reported only if --ffuullllwwaarrnn is specified.
-
- --ddiiaagg__ssuupppprreessss _n_u_m_b_e_r_l_i_s_t
- Equivalent to specifying --wwooffff _n_u_m_b_e_r_l_i_s_t. _n_u_m_b_e_r_l_i_s_t is a
- comma-separated list of message numbers.
-
- --ddiiaagg__wwaarrnniinngg _n_u_m_b_e_r_l_i_s_t
- Treats messages with the specified numbers as warnings unless
- they are non-discretionary errors. _n_u_m_b_e_r_l_i_s_t is a comma-
- separated list of message numbers. If ww is also specified,
- the messages specified by this option are not reported.
-
- --ddoollllaarr Allows the dollar sign ($) as a character in C identifiers
- (including the leading character of an identifier). The
- option is provided solely for compatibility purposes. The
- dollar sign is not a standard C identifier character and its
- use is not recommended.
-
- --EE Runs only the preprocessor phase on the source files and sends
- the result to standard output. The resultant output will
- contain line directives. This option overrides the --nnooccpppp
- option.
-
- --ffbb <<_f_i_l_e>>
- Specifies the feedback file (_f_i_l_e) to be used as input to the
- compilation. This feedback file can be produced by using
- pprrooff(1) with its --ffeeeeddbbaacckk option from one or more ..CCoouunnttss
- files generated by the execution of the instrumented program
- produced by ppiixxiiee(1).
-
- --ffbbggeenn Generates an instrumented executable program. Such an
- executable is suitable for producing one or more ..CCoouunnttss files
- for feedback compilation. When the --cc option is used to
- produce an object file that is eventually linked to form an
- instrumented executable, the --ffbbggeenn option should also be
- specified. If the --cc option is not specified, ppiixxiiee(1) is run
- automatically to instrument the generated executable. Run the
- ..xx executable file that is generated without the ..xx suffix.
-
- --ffbbuussee <<_f_i_l_e>>
- Specifies a ..CCoouunnttss file that is used to guide feedback
- compilation. The specified file is used along with the
- instrumented binary that produced the ..CCoouunnttss file to generate
- a compiler feedback file, which is then used to direct
- optimization of the program. Run the ..xx executable file that
- is generated without the ..xx suffix.
-
- --ffllooaatt The --ffllooaatt option is ignored in ANSI/ISO C conformance mode
- and only has effect in --cccckkrr mode. ANSI/ISO C conformance
- mode uses single precision floating-point operations where
- allowed by the Standard. Causes the compiler to use single-
- precision floating-point whenever float is specified (except
- in function arguments). In the following example, aa and bb are
- promoted to double and a double-precision multiply is done,
- followed by a conversion back to single-precision for the
- assignment to cc.
-
-
- ffllooaatt aa;; iinntt bb;; ffllooaatt cc;; cc == aa ** bb;;
-
- bb is promoted to single-precision and a single-precision
- multiply is done. This option does not affect float and
- double argument passing; float function arguments are promoted
- to double unless function prototypes are used. Unsuffixed
- floating-point constants are cast to single precision values
- in subexpressions with no double (or long double) operands.
-
- --ffllooaatt__ccoonnsstt
- Interprets floating point constants without precision suffixes
- as single-precision whenever doing so will not lose precision
- and the context is otherwise single-precision. This may
- prevent unnecessary conversions between single- and double-
- precision in ANSI/ISO C conformance mode when the variables
- involved have all been declared as float but the constants
- have not been appended with ff.
-
- --ffuullllwwaarrnn
- Does various extra checks and produces additional warnings
- that are normally suppressed by default. This option is
- recommended for all compiles during software development.
-
- --GG _n_u_m Specifies the maximum size (in bytes) of a data item that is
- to be accessed from the global pointer. _n_u_m must be a
- positive integral number. If _n_u_m is zero, no data is accessed
- from the global pointer. The default value is 8 bytes.
-
- Data stored relative to the global pointer can be accessed by
- the program quickly, but this space is limited. Large
- programs may overflow the space accessed by the global pointer
- at load time. If the loader gives the error message BBaadd --GG
- nnuumm vvaalluuee, recompile specifying a lower value for _n (or add
- --GG00 if no --GG was specified. You should usually use the same
- value of this switch for compiling all files that comprise a
- program executable for DSO.
-
- --gg[_n] Specifies the debugging information produced by the compiler.
- _n can be one of the following:
-
- 00 No debugging information for symbolic debugging is
- produced. This is the default.
-
- 22 Produces additional debugging information for full
- symbolic debugging. Optimizations that limit full
- symbolic debugging are not done. This overrides the
- optimization options (--OO, --OO11, --OO22, --OO33).
-
- 33 Produces additional debugging information for symbolic
- debugging of fully optimized code, which makes the
- debugger inaccurate. This can be used with the
- optimization options (--OO, --OO11, --OO22, --OO33).
-
- Specifying --gg without a debug level is equivalent to
- specifying --gg22.
-
- --hheellpp Lists all of the available options.
-
- --II _d_i_r Searches directories for ##iinncclluuddee files whose names do not
- begin with //. Directories are searched in the following
- order: directory of the _f_i_l_e argument, directories specified
- in --II options, and the standard directory (//uussrr//iinncclluuddee).
-
- --iiggnnoorree__ssuuffffiixx
- Determines the language of the source file being compiled by
- the command used to invoke the compiler. By default, the
- language is determined by the file suffixes (..cc, ..ccpppp, ..CC,
- ..ccxxxx, ..ff, ..ff9900, ..ss). When the --iiggnnoorree__ssuuffffiixx option is
- specified, the cccc command invokes the C compiler.
-
- --IINNLLIINNEE:: ......
- The standalone inliner option group controls application of
- intra-file subprogram inlining when interprocedural analysis
- is not enabled (see the --IIPPAA description). See the iippaa((55)) man
- page for more information, including the individual options in
- this group.
-
- --IIPPAA:: ......
- The inter-procedural analyzer option group controls
- application of inter-procedural analysis and optimization,
- including inlining, constant propagation, common block array
- padding, dead function elimination, alias analysis, and
- others. Specify --IIPPAA by itself to invoke the interprocedural
- analysis phase with default options. If you compile and link
- in distinct steps, you must specify at least --IIPPAA for the
- compile step, and specify --IIPPAA and the individual options in
- the group for the link step. If you specify --IIPPAA for the
- compile step, and do not specify --IIPPAA for the link step, you
- will receive an error. See the iippaa((55)) man page for more
- information, including the individual options in this group.
-
- --KKPPIICC Generates position-independent code (PIC). This is the
- default and is needed for programs linking with dynamic shared
- libraries. If you do not want to generate PIC code, specify
- --nnoonn__sshhaarreedd on the command line.
-
- --LL _d_i_r_e_c_t_o_r_y
- In XPG4 mode, changes the algorithm of searching for libraries
- named in --LL operands to look in the specified directory before
- looking in the default location. Directories specified in --LL
- options are searched in the specified order. Multiple
- instances of --LL options can be specified.
-
- --ll _l_i_b_r_a_r_y
- In XPG4 mode, searches the specified _l_i_b_r_a_r_y. A library is
- searched when its name is encountered, so the placement of a
- --ll operand is significant.
-
- --LLAANNGG:: ......
- The language feature option group controls the source language
- interpretation assumed by the compiler. The individual
- controls in this group are as follows:
-
- ppcchh [[ == (( OONN||OOFFFF ))]]
- Automatically uses or creates a precompiled header file.
- This option cannot be specified with --LLAANNGG::uussee__ppcchh or
- --LLAANNGG::ccrreeaattee__ppcchh.
-
- A precompiled header file contains a snapshot of all the
- code preceding the "header stop" point, which is generally
- the first token in the primary source file that does not
- belong to a preprocessing directive. Use of precompiled
- headers may speed up compilation in certain cases. For
- details on precompiled header files, see the _M_I_P_S_p_r_o
- _C_o_m_p_i_l_i_n_g _a_n_d _P_e_r_f_o_r_m_a_n_c_e _T_u_n_i_n_g _G_u_i_d_e.
-
- ccrreeaattee__ppcchh==_f_i_l_e-_n_a_m_e
- Creates a precompiled header with the specified _f_i_l_e-_n_a_m_e.
- This option cannot be specified with --LLAANNGG::ppcchh or
- --LLAANNGG::uussee__ppcchh.
-
- uussee__ppcchh==_f_i_l_e-_n_a_m_e
- Specifies the precompiled header, _f_i_l_e-_n_a_m_e, if it is
- valid for this compilation unit. The compilation proceeds
- with a warning if the ppcchh file cannot be used. This
- option cannot be specified with --LLAANNGG::ppcchh or
- --LLAANNGG::ccrreeaattee__ppcchh.
-
- ppcchh__ddiirr==_d_i_r_e_c_t_o_r_y-_n_a_m_e
- Searches _d_i_r_e_c_t_o_r_y-_n_a_m_e and/or creates a precompiled
- header file. This option can be specified with --LLAANNGG::ppcchh,
- --LLAANNGG::ccrreeaattee__ppcchh, and --LLAANNGG::uussee__ppcchh. When specified with
- --LLAANNGG::ccrreeaattee__ppcchh or --LLAANNGG::uussee__ppcchh, the indicated filename
- is appended to the directory specified by this name,
- unless the file name is an absolute path name.
-
- --LLIISSTT:: ......
- The listing option flag controls information that gets written
- to a listing (..ll) file. The individual controls in this group
- are:
-
- == (( OONN||OOFFFF )) Enables or disables writing the listing file.
- The default is OONN if any --LLIISSTT:: group options are
- enabled. By default, the listing file contains a
- list of options enabled.
-
- aallll__ooppttiioonnss [[ == (( OONN||OOFFFF ))]]
- Enables or disables listing of most supported
- options. The default is OOFFFF.
-
- nnootteess [[ == (( OONN||OOFFFF ))]]
- If an assembly listing is generated (for example,
- on --SS), various parts of the compiler (such as
- software pipelining) generate comments within the
- listing that describe what they have done.
- Specifying OOFFFF suppresses these comments. The
- default is OONN.
-
- ooppttiioonnss [[ == (( OONN||OOFFFF ))]]
- Enables or disables listing of the options
- modified (directly in the command line, or
- indirectly as a side effect of other options).
- The default is OOFFFF.
-
- ssyymmbboollss [[ == (( OONN||OOFFFF ))]]
- Enables or disables listing of information about
- the symbols (variables) managed by the compiler.
-
- --LLNNOO Specifies options and transformations performed on loop nests.
- This option is enabled only if the --OO33 option is also
- specified on the compiler command line. For information on
- the LNO options that are in effect during a compilation, use
- the --LLIISSTT option. See the llnnoo((55)) man page for more
- information, including the individual options in this group.
-
- --MM Runs only the preprocessor on the named files and writes
- mmaakkee(1) dependencies to standard output.
-
- --MMDDuuppddaattee _f_i_l_e_n_a_m_e
- Updates _f_i_l_e_n_a_m_e to contain mmaakkee(1) dependencies for the
- output file. --MMDDuuppddaattee updates only lines in _f_i_l_e_n_a_m_e that
- end with a distinctive mmaakkee comment and begin with the name of
- the output file followed by a colon. The standard option used
- with mmaakkee(1) is --MMDDuuppddaattee MMaakkeeddeeppeenndd.
-
- --mmiippss_n Specifies the Instruction Set Architecture (ISA). _n can be
- one of the following:
-
- 11 Generates code using the instruction set of the
- R2000/R3000 RISC architecture, and searches for mips1
- libraries/objects at link-time. This defaults to --oo3322.
-
- 22 Generates code using the MIPS II instruction set (MIPS I +
- R4000 specific extensions), and searches for mips2
- libraries/objects at link-time. This defaults to --oo3322.
-
- 33 Generates code using the full MIPS III instruction set,
- and searches for mips3 libraries/objects at link-time. If
- --nn3322 or --6644 are not specified, this defaults to --6644 on
- R8000-based systems and --nn3322 on all other systems.
-
- --mmiippss44
- Generates code using the full MIPS IV instruction set
- which is supported on R10000, R5000 and R8000 systems, and
- searches for mips4 libraries/objects at link-time. This
- is the default on R8000 systems. If --nn3322 or --6644 are not
- specified, this defaults to --6644 on R8000-based systems and
- --nn3322 on all other systems.
-
- --mmpp Enables multiprocessing options. For more information on the
- directives, see the _C _L_a_n_g_u_a_g_e _R_e_f_e_r_e_n_c_e _M_a_n_u_a_l.
-
- --nnooccpppp Does not run the preprocessor phase on the source files. This
- option is ignored when compiling a ..ii file.
-
- --nnoonn__sshhaarreedd
- Builds a non-shared object. This is the opposite of --KKPPIICC.
- The --nnoonn__sshhaarreedd option causes the linker to search the
- nnoonnsshhaarreedd subdirectory of each default library search
- directory. For more information, see the lldd(1) man page. The
- linker defaults the archive extensions from ..ssoo to ..aa. The
- appropriate non-shared library images must be installed.
-
- --nnoossttddiinncc
- Does not search for ##iinncclluuddee files in the standard directory
- (//uussrr//iinncclluuddee).
-
- --oo _o_u_t_p_u_t
- Produces an absolute binary file named _o_u_t_f_i_l_e. When this
- option is used in conjunction with the --cc option and a single
- C source file, a relocatable object file named _o_u_t_f_i_l_e is
- produced. When specified with the --SS option, the --oo option is
- ignored. If --oo and --cc are not specified, a file named aa..oouutt
- is produced.
-
- --OO[_n] Specifies the basic level of optimization desired. _n can be
- one of the following:
-
- 00 Turns off all optimizations. This is the default.
-
- 11 Turns on local optimizations that can be done quickly.
-
- 22 Turns on extensive optimization. The optimizations at
- this level are generally conservative, in the sense that
- they are virtually always beneficial, provide
- improvements commensurate to the compile time spent to
- achieve them, and avoid changes which affect such things
- as floating point accuracy.
-
- 33 Turns on aggressive optimization. The optimizations at
- this level are distinguished from --OO22 by their
- aggressiveness, generally seeking highest-quality
- generated code even if it requires extensive compile
- time. They may include optimizations that are generally
- beneficial but may hurt performance.
-
- This option also enables the --OOPPTT::rroouunnddooffff==22 option which
- does aggressive rearrangement of floating point
- calculations with potential effects on accuracy. See the
- oopptt(5), iippaa(5), and llnnoo(5) man pages for additional
- information on general optimization, standalone inliner
- and interprocedural analysis, and loop nest optimizer,
- respectively.
-
- If no value is specified for _n, 2 is assumed.
-
- --OOffaasstt [[ == _i_p_x_x]]
- Selects optimizations that maximize performance for the given
- SGI target platform, _i_p_x_x. These optimizations may differ
- between releases of the compiler and among the supported
- platforms. They enable the full instruction set of the target
- platform (for example, --mmiippss44 for an R10000). Although the
- optimizations are generally safe, they may affect floating
- point accuracy due to rearrangement of computations. Typical
- optimizations include --OO33, --IIPPAA, --TTAARRGG::ppllaattffoorrmm==_i_p_x_x, --nn3322,
- and --OOPPTT::OOlliimmiitt==00::rroouunnddooffff==33::ddiivv__sspplliitt==OONN::aalliiaass==ttyyppeedd. See
- the --TTAARRGG::ppllaattffoorrmm==_i_p_x_x option for information about the
- optional argument. To determine which options are set by
- --OOffaasstt, use the --LLIISSTT::ooppttiioonnss option. The default is an
- R10000 Power Challenge, IP25.
-
- --OOPPTT::......
- Controls miscellaneous optimizations. This option overrides
- default optimizations. See the oopptt(5) man page for more
- information, including the individual options in this group.
-
- --PP Runs only the preprocessor and puts the result for each source
- file in a corresponding ..ii file. The ..ii file has no inline
- directives in it.
-
- --ppccaa [[lliisstt || kkeeeepp]]
- Invokes the MIPSpro automatic parallelization. One of the
- following two arguments can also be specified:
-
- lliisstt Runs ppccaa and produces a listing file appended with ..LL,
- and explains which loops were parallelized and which were
- not (and why).
-
- kkeeeepp Runs ppccaa, produces the listing file, and produces a
- transformed multiprocessed C intermediate file appended
- with ..MM (Power C only).
-
- --ppeeddaannttiicc
- In ANSI/ISO mode, warns that the ##iiddeenntt preprocessor directive
- is non-standard. This directive is a System V extension,
- which by default is silently ignored. This option is ignored
- in K&R/Version7 C mode.
-
- --rr When specified with --IIPPAA and --cc during compilation, the
- resulted object is an ELF relocatable object, not an
- intermediate object. When specified with --IIPPAA::rreelloopptt==oonn, the
- resulting object has non-PIC optimizations performed on it.
-
- --rr55000000 Schedules code for the R5000 and adds
- --LL//uussrr//lliibb{{3322,,6644}}//mmiippss{{33,,44}}//rr55000000 to the head of the library
- search path depending on which ABI and ISA is specified or
- implied. (See the mmaatthh(3) man page for details of math
- library usage.)
-
- --rr88000000 Schedules code for the R8000 and adds
- --LL//uussrr//lliibb{{3322,,6644}}//mmiippss{{33,,44}}//rr88000000 to the head of the library
- search path depending on which ABI and ISA is specified or
- implied. (See the mmaatthh(3) man page for details of math
- library usage.)
-
- --rr1100000000 Schedules code for the R10000 and adds
- --LL//uussrr//lliibb{{3322,,6644}}//mmiippss{{33,,44}}//rr1100000000 to the head of the library
- search path depending on which ABI and ISA is specified or
- implied. (See the mmaatthh(3) man page for details of math
- library usage.)
-
- --SS Compiles the specified source files and creates symbolic
- assembly language output files suffixed with ..ss.
-
- --sshhooww Prints the passes as they execute with their arguments and
- their input and output files.
-
- --ssiiggnneedd Causes all cchhaarr declarations to be ssiiggnneedd cchhaarr declarations.
- The default is to treat them as uunnssiiggnneedd cchhaarr declarations.
-
- --TTAARRGG:: ......
- The target option group controls the target architecture and
- machine for which code is generated. The individual controls
- in this group are:
-
- ddiissmmiissss__mmeemm__ffaauullttss [[ == (( OONN||OOFFFF ))]]
- Forces the kernel to dismiss any memory faults (such as
- SIGSEGV or SIGBUS) which occur during execution of the
- program (not just the code being compiled). This option
- allows optimizations which might cause extra faults and
- can slow down execution if extra faults occur. It also
- prevents recognition of legitimate faults. Default is
- OOFFFF.
-
- eexxcc__mmaaxx== [[II]][[UU]][[OO]][[ZZ]][[VV]]
- Specifies the maximum set of IEEE-754 floating point
- exceptions for which traps may be enabled at runtime for
- the program (not just the code being compiled). Zero or
- more of the five letters specify inexact (II), underflow
- (UU), overflow (OO), divide-by-zero (ZZ), and invalid
- operation (VV) exceptions. This option allows
- optimizations which might cause extra exceptions, and it
- may prevent recognition of legitimate faults. It does
- not affect explicit setting of exception enable flags by
- the program, and should be avoided if the program does
- this. See also the --TTAARRGG::eexxcc__mmiinn description. Default
- is IIUUOOZZVV, affected by the --TTEENNVV::XX option.
-
- eexxcc__mmiinn== [[II]][[UU]][[OO]][[ZZ]][[VV]]
- Specifies the minimum set of IEEE-754 floating point
- exceptions for which traps must be enabled at runtime for
- the program (not just the code being compiled). Zero or
- more of the five letters specify inexact (II), underflow
- (UU), overflow (OO), divide-by-zero (ZZ), and invalid
- operation (VV) exceptions. This option does not affect
- explicit setting of exception enable flags by the
- program, and should be avoided if the program does this.
- See also the --TTAARRGG::eexxcc__mmaaxx option. The --TTAARRGG::eexxcc__mmaaxx and
- --TTAARRGG::eexxcc__mmiinn options specified for the various files
- that comprise a program must be consistent; for example,
- none of the --TTAARRGG::eexxcc__mmiinn values may require exceptions
- disabled by --TTAARRGG::eexxcc__mmaaxx values. Default is none.
-
- ffpp__pprreecciissee [[ == (( OONN||OOFFFF ))]]
- Forces the target processor into precise floating point
- mode at execution time. Using this option to compile any
- of the component source files of a program invokes this
- feature in the resulting program. This option is
- supported only on R8000 target processors and can cause
- significant performance degradation for programs with
- heavy floating point usage. See also the ffppmmooddee(1)
- command.
-
- iissaa== (( mmiippss33||mmiippss44 ))
- Identifies the target instruction set architecture for
- compilation, such as the set of instructions that are
- generated. Specify --TTAARRGG::iissaa==mmiippss33 for code that must
- run on R4000 processors. This option is equivalent to
- specifying --mmiippss33 or --mmiippss44 (see those options for
- defaults).
-
- mmaadddd [[ == (( OONN||OOFFFF ))]]
- Enables or disables transformations to use multiply/add
- instructions. These instructions perform a multiply and
- an add with a single roundoff. They are more accurate
- than the usual discrete operations, and may cause results
- not to match baselines from other targets. Use this
- option to determine whether observed differences are due
- to mmaadddds. Default is OONN for MIPS IV target, ignored for
- others.
-
- ppllaattffoorrmm [[ == _i_p_x_x]]
- Identifies the target SGI platform for compilation,
- choosing various internal parameters (such as cache
- sizes) appropriately. The current supported values are
- ip19, ip20, ip21, ip22_4k, ip22_5k, ip24, ip25, ip26,
- ip27, ip28, ip30, ip32_5k, and ip32_10k. The appropriate
- selection for your platform can be determined by running
- ""hhiinnvv --cc pprroocceessssoorr"". The first line identifies the
- proper IP number and, for those where a processor suffix
- (for example, __44kk) is required, the next line identifies
- the processor (R4000).
-
- pprroocceessssoorr== (( rr44000000||rr55000000||rr88000000||rr1100000000 ))
- Selects the processor for which to schedule code. The
- chosen processor must support the ISA specified (or
- implied by the ABI).
-
- ssyynncc [[ == (( OONN||OOFFFF ))]]
- Enable/disable use of SYNC instructions. Default is OONN.
-
- --TTEENNVV:: ......
- The target environment option group controls the target
- environment assumed and/or produced by the compiler. The
- individual controls in this group are:
-
- aalliiggnn__aaggggrreeggaattee[[== _b_y_t_e_s ]]
- Controls alignment of allocated aggregates, such as
- structs and arrays. _b_y_t_e_s specifies that any aggregate
- object at least that large is to have at least that
- alignment. By default (or if _b_y_t_e_s is not specified),
- aggregates are aligned to the integer register size, for
- example, 8 bytes for 64-bit programs and 4 bytes for 32-
- bit programs. The value 0 specifies that the minimum
- alignment consistent with the ABI is to be used.
- Otherwise, the value given must be a power of two no
- greater than 16.
-
- cchheecckk__ddiivv[[==NN]]
- See --DDEEBBUUGG::ddiivv__cchheecckk on the DDEEBBUUGG__ggrroouupp(5) man page.
-
- llaarrggee__GGOOTT [[ ==OONN ]]
- Assumes that the Global Offset Table (for shared code) is
- more than 64K bytes and generates large offsets for
- references to it. Default is OOFFFF. See also the
- ssmmaallll__GGOOTT option description.
-
- ssmmaallll__GGOOTT [[ ==OONN ]]
- Assumes that the Global Offset Table (for shared code) is
- less than 64K bytes and generates small offsets for
- references to it. This is the default mode. See also the
- llaarrggee__GGOOTT option decription.
-
- vvaarraarrggss__pprroottoottyyppeess [[ == (( OOFFFF||OONN ))]]
- See the --DDEEBBUUGG::vvaarraarrggss__pprroottoottyyppeess option description on
- the DDEEBBUUGG__ggrroouupp(5) man page.
-
- XX==00 .... 44
- Specifies the level of enabled exceptions that is assumed
- for purposes of performing speculative code motion
- (default level 1 at --OO00 .... --OO22, 2 at --OO33). In general,
- an instruction is not speculated (i.e. moved above a
- branch by the optimizer) unless any exceptions it might
- cause are disabled by this option. At level 0, no
- speculative code motion may be performed. At level 1,
- safe speculative code motion may be performed, with
- IEEE-754 underflow and inexact exceptions disabled. At
- level 2, all IEEE-754 exceptions are disabled except
- divide by zero. At level 3, all IEEE-754 exceptions are
- disabled including divide by zero. At level 4, memory
- exceptions may be disabled or ignored.
-
- NOTE: At levels above the default level 1, various
- hardware exceptions that are normally useful for
- debugging, or which are trapped and repaired by the
- hardware, may be disabled or ignored, with the potential
- of hiding obscure bugs. The program should not
- explicitly manipulate the IEEE floating point trap-enable
- flags in the hardware if this option is used.
-
- zzeerrooiinniitt__iinn__bbssss [[ == (( OOFFFF||OONN ))]]
- Enables data that is initialized to zero to be loaded
- into the ..bbssss section instead of the ..ddaattaa section.
-
- --ttrraappuuvv This option has been replaced by --DDEEBBUUGG::ttrraapp__uunniinniittiiaalliizzeedd.
- See the DDEEBBUUGG__ggrroouupp(5) man page.
-
- --UU _n_a_m_e Removes any initial definition of _n_a_m_e.
-
- --uussee__rreeaaddoonnllyy__ccoonnsstt
- Puts string literals and file-level (static, common, or
- external) ccoonnsstt qualified initialized variables into a ..rrooddaattaa
- section to separate these objects from data likely to be
- modified. This is the default. However, if you want
- constants to not be writeable, then in addition to specifying
- --uussee__rreeaaddoonnllyy__ccoonnsstt, you must also specify --GG00 --rrddaattaa__sshhaarreedd,
- because by default, the linker makes ..rrooddaattaa and gp-relative
- sections writable.
-
- --uussee__rreeaaddwwrriittee__ccoonnsstt
- Puts all ccoonnsstt qualified variables and string literals in a
- readable and writable data section.
-
- --vv This option has the same functionality as specifying --ffuullllwwaarrnn
- (verbose warnings).
-
- --vveerrssiioonn
- Displays the version number of the compiler.
-
- --WW _c,_a_r_g_1[[,,_a_r_g_2......]]
- Passes the argument(s) _a_r_g_i to the compiler pass _c where _c is
- one of [ppKKMMffbbaall]. The cc selects the compiler pass according
- to the following table:
-
- NNaammee ((--nn3322 oorr --6644)) CChhaarraacctteerr
-
- preprocessor pp
-
- pca KK (Automatic Parallelization
- Option Only)
-
- mpc
-
- fec ff (See below)
-
- be bb
-
- asm aa
-
- ld ll
-
- Sets of these phase names can be used to select any
- combination of phases. For example, --WWbbaa,,--oo,,ffoooo passes the
- option --oo ffoooo to the bb and aa phases.
-
- --ww Suppresses warning messages.
-
- --ww22 Counts warnings as errors.
-
- --wwooffff aallll
- Suppresses warning messages.
-
- --wwooffff _n_u_m_b_e_r_l_i_s_t
- (ANSI/ISO C only) Suppresses warning messages. _n_u_m_b_e_r_l_i_s_t is
- a comma-separated set of 1 or more numbersets. A numberset is
- either a simple integer or a pair of integers separated by a
- hyphen. Examples: --wwooffff 11552277 suppresses warning 1527. --wwooffff
- 11552277--11557700 suppresses warnings 1527 through 1570. --wwooffff 11660000--
- 11770000,,11770055--11779900 suppresses numbers 1600 through 1700 and 1705
- through 1790.
-
- --xxaannssii (ANSI/ISO C only) Enables ANSI/ISO C with all the same
- definitions as K&R/Version7 C mode (--cccckkrr). ____SSTTDDCC____ and
- ____EEXXTTEENNSSIIOONNSS____ are defined, many symbols are added into the
- namespace, and ____IINNLLIINNEE__IINNTTRRIINNSSIICCSS is defined and may cause
- some intrinsic <<mmaatthh..hh>>, <<ssttddiioo..hh>>, <<ssttrriinngg..hh>>, and <<ccuurrsseess..hh>>
- library functions to be inlined. Such inlined functions may
- not set eerrrrnnoo in accordance with the strict ANSI/ISO C
- standard requirements. --xxaannssii is the default used by the
- compiler unless the environment variable SSGGII__CCCC is set (see
- the SSGGII__CCCC environment variable definition on this man page).
- If specified with --cccckkrr or --aannssii, the last option specified is
- effective and the rest are ignored.
-
- --XXccpplluussccoommmm
- Applies C++ style comment rules.
-
- --xxggoott Uses a 32-bit offset in the Global Symbol Table (GOT). By
- default, addresses are loaded out of the GOT using a 16-bit
- offset from a context pointer. The default size of the GOT is
- limited to 64K bytes or about 8K worth of symbols. This can
- result in receiving the GGOOTT oovveerrffllooww message. Use of the
- --xxggoott option lets the GOT contain up to 1G of entries;
- however, the resulting executable will be somewhat larger and
- slower. --xxggoott is a synonym for --TTEENNVV::llaarrggee__GGOOTT.
-
- Another solution for GGOOTT oovveerrffllooww problems is to compile the
- objects without the --xxggoott option and to link using the
- --mmuullttiiggoott option which is described on the lldd(1) man page.
-
- For more information about the GOT, the --xxggoott option and some
- important notes about its use, see the ddssoo(5) man page (see
- the FAQ section, "What should I do about a GOT overflow?").
-
- --YY _c,_p_a_t_h
- Sets the _p_a_t_h in which to find the associated phase, using the
- same phase names as given in the --WW option. The following
- characters can also be specified:
-
- II Specifies where to search for include files
-
- SS Specifies where to search for startup files (ccrrtt**..oo)
-
- LL Specifies where to search for libraries
-
- LLOOAADDEERR OOPPTTIIOONNSS
- Other arguments are assumed to be either loader options, object files,
- or libraries. These files, together with the results of any
- compilations specified, are loaded in the order given, producing an
- executable program with the default name aa..oouutt..
-
- EENNVVIIRROONNMMEENNTT VVAARRIIAABBLLEESS
- For information on environment variables, see the ppee__eennvviirroonn(5) man
- page.
-
- NNOOTTEESS
- The compiler uses the same set of message numbers when compiling --nn3322
- or --6644, but it uses a different set of message numbers when compiling
- --oo3322. Keep this in mind when writing multi-ABI MMaakkeeffiilleess.
-
- All SGI platforms support the development and execution of --oo3322
- applications.
-
- All SGI platforms support the development and execution of --nn3322
- applications, but the subsystems containing the appropriate libraries
- are not always installed by default. During installation, you may
- have to select subsystems with names like pprroodduucctt..ssww3322 for --nn3322
- libraries.
-
- All SGI platforms support the development of --6644 applications, but the
- subsystems containing the appropriate libraries are not always
- installed by default. During installation, you may have to select
- subsystems with names like pprroodduucctt..ssww6644 for --6644 libraries.
-
- Most SGI platforms do not support the execution of --6644 applications.
- If the output of %%uunnaammee returns IRIX64, you can run 64-bit programs.
-
- The compiler attempts to continue after finding semantic errors.
- These errors may result in compiler internal errors.
-
- EEXXAAMMPPLLEESS
- EXAMPLE 1: Compile 64-bit MIPS IV (R8000, R10000, R5000) code, which
- will not run on R4000/R4400 processors.
-
- cc -64 -mips4 ...
-
- EXAMPLE 2: Compile 64-bit ABI (MIPS 3) code, scheduled for best
- performance on the R8000 processor but not using R8000-specific (MIPS
- IV) instructions so that it will be executable on R4000/R4400
- processors.
-
- cc -64 -TARG:proc=r8000 ...
-
- EXAMPLE 3: Compile with extensive optimization enabled, allowing
- transformations which affect floating point roundoff and overflow,
- assuming strict ANSI C aliasing rules.
-
- cc -O2 -OPT:roundoff=2:alias=typed ...
-
- EXAMPLE 4: Compile with aggressive optimization (including SWP)
- enabled, allowing transformations with arbitrary effects on floating
- point roundoff and overflow.
-
- cc -O3 -OPT:roundoff=3 ...
-
- FFIILLEESS
- ffiillee..cc C source file
-
- ffiillee..ii C source file
-
- ffiillee..oo Object file
-
- ffiillee..ss Assembly language source file
-
- ffiillee..LL Listing file
-
- aa..oouutt Loaded output
-
- mmoonn..oouutt File produced for analysis by pprrooff(1)
-
- //uussrr//iinncclluuddee Standard directory for ##iinncclluuddee files
-
- //uussrr//bbiinn//lldd Loader
-
- //uussrr//bbiinn//ccoorrdd Function rearranger
-
- //ttmmpp//ccmmppllrr** Temporary files
-
- //eettcc//ccoommppiilleerr..ddeeffaauullttss
- Default ABI, ISA and processor options
- configuration file
-
- //uussrr//lliibb{{3322,,6644}}//lliibbcc..ssoo..11
- Shared standard library (This file is loaded by
- using the --llcc loader option and not a full path
- name.)
-
- //uussrr//lliibb{{3322,,6644}}//lliibbffppee..ssoo
- Floating point exception handler library, see
- ssiiggffppee(3c)
-
- //uussrr//lliibb{{3322,,6644}}//lliibbmm..ssoo
- Shared math library
-
- //uussrr//lliibb{{3322,,6644}}//lliibbpprrooff..aa
- Profiling library
-
- SSEEEE AALLSSOO
- B. W. Kernighan and D. M. Ritchie, _T_h_e _C _P_r_o_g_r_a_m_m_i_n_g _L_a_n_g_u_a_g_e,
- Prentice-Hall, 1978
- _A_N_S_I _X_3._1_5_9-_1_9_8_9, _t_h_e _A_N_S_I _C _S_t_a_n_d_a_r_d
- _P_r_o_g_r_a_m_m_i_n_g _i_n _C-_a _t_u_t_o_r_i_a_l
- _C _R_e_f_e_r_e_n_c_e _M_a_n_u_a_l
- _P_o_w_e_r _C _U_s_e_r'_s _G_u_i_d_e
- _A_N_S_I _C _T_r_a_n_s_i_t_i_o_n _G_u_i_d_e
- _M_I_P_S_p_r_o _C_o_m_p_i_l_i_n_g, _D_e_b_u_g_g_i_n_g _a_n_d _P_e_r_f_o_r_m_a_n_c_e _T_u_n_i_n_g _G_u_i_d_e
- _M_I_P_S_p_r_o _6_4-_b_i_t _P_o_r_t_i_n_g _a_n_d _T_r_a_n_s_i_t_i_o_n _G_u_i_d_e
- _M_I_P_S_p_r_o _N_3_2 _A_B_I _G_u_i_d_e
-
- aass(1), CCCC(1), ccoolllliiddee(1), ccpppp(1), ccoopptt(1), ff9900(1), ppccaa(1), mmppcc(1),
- ddiiss(1), nnmm(1), ddbbxx(1), eellffdduummpp(1), ff7777(1), ffttoocc(1), lldd(1), ppiixxiiee(1),
- pprrooff(1), ssppeeeeddsshhoopp(1), wwhhaatt(1)
-
- ggeettaabbii(3c), ssiiggffppee(3c),
-
- llnnoo(5), oo3322(5), oopptt(5)
-
- This man page is available only online.
-